1. The Field of the Invention
The present invention relates to reducing an image size and/or a bit rate of a video stream. More particularly, the present invention relates to reducing a bit rate of a video stream by spatially transcoding the video stream.
2. Background and Relevant Art
Digital video signals have several significant advantages over their analog counterparts. They can be transmitted, for example, over long distances and stored without degradation. One cost, however, of digital signals is related to the bandwidth that they consume. The raw storage requirement for a typical uncompressed video stream, depending on the resolution, is approximately 20 megabytes per second. At this rate, an uncompressed two hour movie would require 144 Gigabytes of memory, well above the capacity of a conventional Digital Versatile Disk (DVD).
Clearly, uncompressed digital or video signals can consume significant bandwidth. This is particularly a problem in situations where multiple digital signals are being broadcast or where the digital signal is being transmitted over a medium such as the Internet, which has limited bandwidth in many circumstances. The need to reduce bandwidth requirements of digital signals such as video streams has led to the development of various compression schemes.
One conventional compression scheme or standard defined by the Moving Pictures Expert Group (MPEG) is called MPEG-2. MPEG-2 is based on the principle that there is a large degree of visual redundancy in video streams and that video storage and bandwidth requirements can be reduced by removing the redundant information from the video stream.
The bit stream defined by MPEG is the output of an encoding process that is designed to significantly compress the video picture information. As the MPEG standard only defines the syntax of the resulting bit stream, the standard is flexible enough to be used in a variety of different situations, such as satellite broadcast services, cable television, interactive television services, and the Internet.
The MPEG encoding process generally occurs as follows. A video signal is sampled and quantized to define color and luminance components for each pixel of the digital video. Values representing the color and luminance components are stored in structures known as macroblocks. The color and luminance values stored in the macroblocks are converted to frequency values using a discrete cosine transform (DCT). The transform coefficients obtained from the DCT represent different frequencies in the brightness and the color of the picture.
The MPEG encoding process takes advantage of the fact that human visual system is insensitive to high frequencies in color and luminance changes, and quantizes the transform coefficients to represent the color and luminance information by smaller or more coarsely scaled values. The quantized DCT transform coefficients are then encoded using run level coding (RLC) and variable length coding (VLC) techniques, which further compress the video stream.
The MPEG standard also provides additional compression through motion compensation techniques. Under the MPEG standards, there are three types of pictures or frames: I frames; P frames; and B frames. The I frames are intra-coded, meaning that they can be reconstructed without reference to any other frame or picture in the video stream. P frames and B frames are inter-coded, meaning that they are reconstructed by referencing another frame or picture. For example, P frames and B frames contain motion vectors that represent estimated motion with respect to the reference frame(s). The use of motion vectors enables an MPEG encoder to reduce the bandwidth requirements of a particular video stream.
However, even compressed video or MPEG streams may still have a bit rate that is unsatisfactorily high for certain applications, and therefore there is a need to further compress the video stream or reduce the bit rate of the stream. One solution to this problem is to reduce the bit rate of the MPEG stream by completely decoding the MPEG stream and then re-encoding the MPEG stream at a higher compression ratio to reduce the bit rate to an acceptable level. However, decoding and re-encoding an MPEG stream in this fashion is often computationally expensive because of the need to perform an inverse quantization and an inverse DCT to recreate an approximation of the original data prior to re-encoding the data in accordance with a desired bit rate. There is also a need to recompute motion vectors and other parameters that are included in the resulting bit stream.
As previously stated however, decoding and re-encoding a video stream is often necessary because the bit rate of the incoming video stream may be higher than the available bandwidth or the bit rate of the incoming video stream may be higher than the optimal bit rate for storage of the video stream on a storage medium such as a hard disk drive. In view of these and other problems presented by video streams, minimally complex systems and methods are needed that can reduce the storage and bandwidth requirements of a video stream.